# ---
# title: 347. Top K Frequent Elements
# id: problem347
# author: Tian Jun
# date: 2020-10-31
# difficulty: Medium
# categories: Hash Table, Heap
# link: <https://leetcode.com/problems/top-k-frequent-elements/description/>
# hidden: true
# ---
# 
# Given a non-empty array of integers, return the **_k_** most frequent
# elements.
# 
# **Example 1:**
# 
#     
#     
#     Input: nums = [1,1,1,2,2,3], k = 2
#     Output: [1,2]
#     
# 
# **Example 2:**
# 
#     
#     
#     Input: nums = [1], k = 1
#     Output: [1]
# 
# **Note:**
# 
#   * You may assume _k_ is always valid, 1 ≤ _k_ ≤ number of unique elements.
#   * Your algorithm's time complexity **must be** better than O( _n_ log _n_ ), where _n_ is the array's size.
#   * It's guaranteed that the answer is unique, in other words the set of the top k frequent elements is unique.
#   * You can return the answer in any order.
# 
# 
## @lc code=start
using LeetCode

## add your code here:
## @lc code=end
